home *** CD-ROM | disk | FTP | other *** search
/ Programming Sound Cards / Programming Sound Cards.iso / sound_06 / convert.h < prev    next >
Text File  |  1995-01-01  |  1KB  |  56 lines

  1. /*
  2.     CONVERT.H
  3.  
  4.     28-jun-88, Marc Savary, AdLib Inc.
  5.  
  6.     Header for conversion procedures of *.ROL files to
  7.     *.MUS ( MIDI like) files.
  8. */
  9.  
  10. #define SYSTEM_XOR_BYTE    0xF0
  11. #define EOX_BYTE            0xF7
  12. #define OVERFLOW_BYTE        0xF8
  13. #define STOP_BYTE            0xFC
  14.  
  15. #define NOTE_OFF_BYTE        0x80
  16. #define NOTE_ON_BYTE        0x90
  17. #define AFTER_TOUCH_BYTE    0xA0
  18. #define CONTROL_CHANGE_BYTE    0xB0
  19. #define PROG_CHANGE_BYTE    0xC0
  20. #define CHANNEL_PRESSURE_BYTE    0xD0
  21. #define PITCH_BEND_BYTE    0xE0
  22.  
  23. #define ADLIB_CTRL_BYTE    0x7F    /* for System exclusive */
  24. #define TEMPO_CTRL_BYTE    0
  25.  
  26. #define NR_VOICES            11
  27. #define N_ROLL_VOICES        NR_VOICES
  28. #define TUNE_NAME_SIZE        30
  29. #define FILLER_SIZE        8
  30. #define FILLER2_SIZE        8
  31. #define TIMBRE_DEF_LEN        28
  32. #define TIMBRE_DEF_SIZE     ( TIMBRE_DEF_LEN * sizeof( int))
  33. #define OVERFLOW            240
  34. #define DEFAULT_TICK_BEAT    240
  35.  
  36. struct MusHeader {
  37.     char        majorVersion;
  38.     char        minorVersion;
  39.     long        tuneId;
  40.     char        tuneName[ TUNE_NAME_SIZE];
  41.     char        tickBeat;
  42.     char        beatMeasure;
  43.     long        totalTick;
  44.     long        dataSize;
  45.     long        nrCommand;
  46.     char        filler[ FILLER_SIZE];
  47.  
  48.     char        soundMode;            /* 0: melodic, 1: percussive */
  49.     char        pitchBRange;            /* 1 - 12 */
  50.     unsigned    basicTempo;
  51.     char        filler2[ FILLER2_SIZE];
  52.  
  53.     /* char        data[]; */
  54.     };
  55.  
  56.